Skip to main content

发布测试环境

配置测试机

创建work账号

处于安全考虑,日常不会用root账号登录,权限太高了。

用root登录,创建work账号

adduser work
passwd work

添加work的sudo权限

whereis sudoers # 找到文件位置 /etc/sudoers

chmod u+w /etc/sudoers # 修改权限, u 表示所有者, w 表示写权限 + 表示添加

vim /etc/sudoers # 编辑该文件
# 找到 `root ALL=(ALL) ALL`
# 再加一行 `work ALL=(ALL) ALL`

chmod u-w /etc/sudoers

然后使用work登录机器。输入su,在输入root账号的密码,即可拥有超级权限。

登录信任

使用work登录机器,创建~/.ssh/authorized_keys文件。

# 修改文件夹权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

将本机的id_rsa.pub内容粘贴进来。

退出重新用work登录,将不用在输入密码。

安装必备软件

以下都需要su权限

git

yum -y install git
git --version

docker

docker version
docker-compose --version

开放端口

开放需要的端口,否则外网无法访问该端口

  • B端 FE - 80
  • B端 server - 8081
  • C端 - 8082
  • 统计服务,收集日志 - 8083
  • 统计服务 OpenAPI - 8080
  • admin FE - 8085
  • admin server - 8084

发布到测试机

梳理思路

  • 使用github actions监听dev分支push
  • 登录测试机,获取最新dev分支代码
  • 重新构建镜像docker-compose build editor-server
  • 重启所有容器docker-compose up -d

代码演示

新建deploy-dev.yml内容如下:

name: deploy for dev

on:
push:
branches:
- 'dev' # 只针对 dev 分支
paths:
- '.github/workflows/*'
# - '__test__/**' # dev 不需要立即测试
- 'src/**'
- 'Dockerfile'
- 'docker-compose.yml'
- 'bin/*'

jobs:
deploy-dev:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: set ssh key # 临时设置 ssh key
run: |
mkdir -p ~/.ssh/
# secrets.WFP_ID_RSA github里面设置的
echo "${{secrets.WFP_ID_RSA}}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan "182.92.xxx.xxx" >> ~/.ssh/known_hosts
- name: deploy # 部署
run: |
ssh work@182.92.xxx.xxx "
# 【注意】用 work 账号登录,手动创建 /home/work/imooc-lego 目录
# 然后 git clone https://username:password@github.com/imooc-lego/biz-editor-server.git -b dev (私有仓库,使用 github 用户名和密码)
# 记得删除 origin ,否则会暴露 github 密码

cd /home/work/imooc-lego/biz-editor-server;
git remote add origin https://wangfupeng1988:${{secrets.WFP_PASSWORD}}@github.com/imooc-lego/biz-editor-server.git;
git checkout dev;
git pull origin dev; # 重新下载最新代码
git remote remove origin; # 删除 origin ,否则会暴露 github 密码
# 启动 docker
docker-compose build editor-server; # 和 docker-compose.yml service 名字一致
docker-compose up -d;
"
- name: delete ssh key # 删除 ssh key
run: rm -rf ~/.ssh/id_rsa

远程接口测试

待测试机部署完成,即可进行远程接口测试npm run test:remote,即test.yml的内容

注意,一定要等待测试机部署完成,否则测试不通过